nums = [1,2,1,3,2,5]
#哈希表求解
def singleNumber(nums):
    dictionary=dict()
    for i in nums:
        if i not in dictionary:
            dictionary[i]=1
        else:
            dictionary[i]+=1
    ans=[]

    for key in dictionary:
        if dictionary[key]==1:
            ans.append(key)
    return ans
#位运算求解：异或
def singleNumber1(nums):
    #先计算数组中元素的异或和
    sum=0
    for i in nums:
        sum^=i

    #这里得到的sum是两个不同的单个元素的异或结果，则肯定不会0，因为只有相同元素异或的结果才是0
    #我们需要找到sum中任意一个为1的位置
    k=0
    index=0
    while sum!=0:
        if sum&1==1:
            k+=1<<index
            break
        index+=1
        sum>>=1
    ans=[0,0]
    for i in nums:
        if i & k==0:
            ans[0]^=i
        else:
            ans[1]^=i
    return ans
print(singleNumber1(nums))
